package com.gjintel.framework.register.dao;


import java.util.List;

import com.gjintel.framework.projecttype.model.ProjectType;
import com.gjintel.framework.register.model.DepositCategory;
import com.gjintel.framework.register.model.RegisterCategory;
import com.gjintel.framework.register.model.RegisterUser;
import com.gjintel.framework.user.model.User;
import com.gjintel.sdk.base.dao.Page;



public interface RegisterUserDao {
	/**
	 * @description 保存投标人注册信息
	 * @author shy
	 */
	void saveRegisterUser(RegisterUser registerUser);
	
	/**
	 * @description 根据投标人登陆名查询投标人信息
	 * @author shy
	 * @param loginName
	 */
	 List<RegisterUser> findRegisterUserByLoginName(String loginName);
	 
	 
//	 /**
//		 * @description 根据单位名查询投标人信息
//		 * @author shy
//		 * @param loginName
//		 */
//		 List<RegisterUser> findRegisterUserByCompany(String company);
//	 
	 /**
	  * @description 获取所有注册人信息
	  * @author shy
	  */
	 
	 List<RegisterUser>  getRegisterList(Page page,RegisterUser rUser,java.sql.Date startTime,java.sql.Date endTime);
	 
	 /**
	  * @description 审核
	  * @author shy
	  */
	 
	  void auditRegister(String  auditId, String registerId, String reason, int auth_flag);
		
	     /**
		  * @description 根据 id 获取注册用户信息
		  * @author shy
		  */
	  List<RegisterUser> getRegisterById(String id);
	  
	  	
		/**
		 * @description 根据ca名查询未认证或未认证成功的用户
		 * @author cxj
		 * @param caName
		 * @return List<Register>
		 */
		List<RegisterUser> regcaLogin(String caName);
		
		/**
		 * @description  添加或更新RegisterUser对象
		 * @author shy
		 * @param  ruser
		 */
		void saveOrUpdateObject(RegisterUser ruser);
		
	    /**
	     * @description 查询
	     * @author shy
	     */
		
		void searchList(Page page,String name,String loginName,int flage);
		
		
		/**
		 *  @description删除服务类型
		 *  @author shy
		 */
		void removeCategories(String registerId);
		
		/**
		 *  @description删除协议保证金类型
		 *  @author shy
		 */
		void removeDepositCategories(String registerId);
		
		/**
		 * @description 获取用户保证金类型
		 * @author shy
		 */
		List<DepositCategory> getDepositCategory(String registerId);
		
		/**
		 * @description 获取用户服务类型
		 * @author shy
		 */
		List<RegisterCategory> getRegisterCategory(String registerId);
		
		/**
		 * @description  根据Id 服务类型
		 * @author  shy
		 */
		ProjectType getProjectTypebyId(String registerId);
		
		  /**
	   	 * @description 根据投标人登陆名查询投标人信息(除去已删除的)
	   	 * @author shy
	   	 * @param loginName
	   	 */
	     List<RegisterUser>  getLoginRegisterUserByLoginName(String loginName);
	     
	       /**
	     	 * @description  根据Id 获取保证金类型
	     	 * @author shy
	     	 * @param 
	     	 */
	       List<DepositCategory> getDepositCategoryById(String registerId);
	       
	       /**
	     	 * @description  根据登录名获取投标人信息
	     	 * @author shy
	     	 * @param 
	     	 */
	       RegisterUser getRegisterByLoginname(String loginName);
	       
	       
	       /**
	        * @description 根据RegisterId 获取User信息
	        * @author shy
	        */
	       User getUserByRegisterId(String registerId);

			/**
			 * 根据银行账号获取用户
			 * @param account
			 * @return
			 */
			List<RegisterUser>getSameAccountUser(String account);

	/**
	 * 根据银行账号获取用户(去除自己)
	 * @param account
	 * @return
	 */
	List<RegisterUser>getSameAccountUserExceptMyself(String account,String LoginName);
}
